import Vue from 'vue'
import App from './App.vue'
import router from './router/index'
import store from './store/index'
import 'vant/lib/index.css'
import FastClick  from 'fastclick'

Vue.config.productionTip = false

// 解决移动端点击事件延迟 300 ms 的问题(主要体现在 ios)
FastClick.attach(document.body)
// 使用 fastclick 插件, ios 存在的一些问题
FastClick.prototype.focus = function (target) {
  // 兼容处理: 在 iOS7 中, 有一些元素(如 date、datetime、month 等)在 setSelectionRange 会出现 TypeError    
  // 原因是这些元素并没有 selectionStart 和 selectionEnd 的整型数字属性, 所以一旦引用就会报错, 因此排除这些属性才使用 setSelectionRange 方法
  if (browser.isIOS 
      && target.setSelectionRange 
      && target.type.indexOf('date') !== 0 
      && target.type !== 'time' 
      && target.type !== 'month' 
      && target.type !== 'email') {

      let length = target.value.length;
      // 修复 bug ios 11.3 不弹出键盘，这里加上聚焦代码, 让其强制聚焦弹出键盘 
      target.setSelectionRange(length, length);    
      target.focus(); 
  } else { 
      target.focus(); 
  }
}

// 全局事件总线, vue 实例对象本身就拥有订阅/发布事件的系统, 一般用到组件通信上(有些地方不适合使用 vuex, 会显得怪异)
Vue.prototype.$evtBus = new Vue();

new Vue({
  store,
  router,
  render: h => h(App),
}).$mount('#app')
